home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form frmStyles
- Caption = "Styles"
- ClientHeight = 4830
- ClientLeft = 825
- ClientTop = 1455
- ClientWidth = 8685
- LinkTopic = "Form1"
- PaletteMode = 1 'UseZOrder
- ScaleHeight = 4830
- ScaleWidth = 8685
- Begin VB.Frame Frame2
- Caption = "ForeColor"
- Height = 1575
- Index = 1
- Left = 0
- TabIndex = 31
- Top = 840
- Width = 2295
- Begin VB.OptionButton optForeColor
- Caption = "Red"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H000000FF&
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 36
- Top = 480
- Width = 1095
- End
- Begin VB.OptionButton optForeColor
- Caption = "Green"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H0000FF00&
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 35
- Top = 720
- Width = 1095
- End
- Begin VB.OptionButton optForeColor
- Caption = "Blue"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00FF0000&
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 34
- Top = 960
- Width = 1095
- End
- Begin VB.OptionButton optForeColor
- Caption = "Black"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00000000&
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 33
- Top = 240
- Width = 1095
- End
- Begin VB.OptionButton optForeColor
- Caption = "White"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00FFFFFF&
- Height = 255
- Index = 4
- Left = 120
- TabIndex = 32
- Top = 1200
- Width = 1095
- End
- End
- Begin VB.Frame Frame2
- Caption = "FillColor"
- Height = 1575
- Index = 0
- Left = 2400
- TabIndex = 25
- Top = 840
- Width = 2295
- Begin VB.OptionButton optFillColor
- Caption = "White"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00FFFFFF&
- Height = 255
- Index = 4
- Left = 120
- TabIndex = 30
- Top = 1200
- Width = 1095
- End
- Begin VB.OptionButton optFillColor
- Caption = "Black"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00000000&
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 29
- Top = 240
- Width = 1095
- End
- Begin VB.OptionButton optFillColor
- Caption = "Blue"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00FF0000&
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 28
- Top = 960
- Width = 1095
- End
- Begin VB.OptionButton optFillColor
- Caption = "Green"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H0000FF00&
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 27
- Top = 720
- Width = 1095
- End
- Begin VB.OptionButton optFillColor
- Caption = "Red"
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H000000FF&
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 26
- Top = 480
- Width = 1095
- End
- End
- Begin VB.Frame Frame1
- Caption = "FillStyle"
- Height = 2295
- Index = 2
- Left = 2400
- TabIndex = 15
- Top = 2520
- Width = 2295
- Begin VB.OptionButton optFillStyle
- Caption = "vbDiagonalCross"
- Height = 255
- Index = 7
- Left = 120
- TabIndex = 23
- Top = 1920
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbFSSolid"
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 22
- Top = 240
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbFSTransparent"
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 21
- Top = 480
- Value = -1 'True
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbHorizontalLine"
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 20
- Top = 720
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbVerticalLine"
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 19
- Top = 960
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbUpwardDiagonal"
- Height = 255
- Index = 4
- Left = 120
- TabIndex = 18
- Top = 1200
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbCross"
- Height = 255
- Index = 6
- Left = 120
- TabIndex = 16
- Top = 1680
- Width = 1850
- End
- Begin VB.OptionButton optFillStyle
- Caption = "vbDownwardDiagonal"
- Height = 255
- Index = 5
- Left = 120
- TabIndex = 17
- Top = 1440
- Width = 1910
- End
- End
- Begin VB.TextBox txtDrawWidth
- Height = 285
- Left = 840
- MaxLength = 1
- TabIndex = 14
- Text = "1"
- Top = 240
- Width = 375
- End
- Begin VB.Frame Frame1
- Caption = "DrawStyle"
- Height = 2295
- Index = 1
- Left = 0
- TabIndex = 2
- Top = 2520
- Width = 2295
- Begin VB.OptionButton optDrawStyle
- Caption = "vbInsideSolid"
- Height = 255
- Index = 6
- Left = 120
- TabIndex = 13
- Top = 1680
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbTransparent"
- Height = 255
- Index = 5
- Left = 120
- TabIndex = 12
- Top = 1440
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbDashDotDot"
- Height = 255
- Index = 4
- Left = 120
- TabIndex = 11
- Top = 1200
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbDashDot"
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 10
- Top = 960
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbDot"
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 9
- Top = 720
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbDash"
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 8
- Top = 480
- Width = 1455
- End
- Begin VB.OptionButton optDrawStyle
- Caption = "vbSolid"
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 7
- Top = 240
- Value = -1 'True
- Width = 1455
- End
- End
- Begin VB.Frame Frame1
- Caption = "Object"
- Height = 615
- Index = 0
- Left = 1320
- TabIndex = 1
- Top = 120
- Width = 3375
- Begin VB.OptionButton ObjectChoice
- Caption = "Point"
- Height = 255
- Index = 3
- Left = 2520
- TabIndex = 24
- Top = 240
- Width = 735
- End
- Begin VB.OptionButton ObjectChoice
- Caption = "Box"
- Height = 255
- Index = 1
- Left = 960
- TabIndex = 6
- Top = 240
- Width = 615
- End
- Begin VB.OptionButton ObjectChoice
- Caption = "Line"
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 5
- Top = 240
- Value = -1 'True
- Width = 735
- End
- Begin VB.OptionButton ObjectChoice
- Caption = "Circle"
- Height = 255
- Index = 2
- Left = 1680
- TabIndex = 4
- Top = 240
- Width = 735
- End
- End
- Begin VB.PictureBox picCanvas
- AutoRedraw = -1 'True
- Height = 4575
- Left = 4800
- ScaleHeight = 4515
- ScaleWidth = 3795
- TabIndex = 0
- Top = 240
- Width = 3855
- End
- Begin VB.Label Label1
- Caption = "DrawWidth"
- Height = 255
- Left = 0
- TabIndex = 3
- Top = 270
- Width = 855
- End
- Attribute VB_Name = "frmStyles"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- Private Enum ObjectTypes
- objLine = 0
- objBox = 1
- objCircle = 2
- objPoint = 3
- End Enum
- Private ObjectType As ObjectTypes
- Private Rubberbanding As Boolean
- Private OldMode As Integer
- Private OldStyle As Integer
- Private FirstX As Single
- Private FirstY As Single
- Private LastX As Single
- Private LastY As Single
- ' Make the picCanvas as big as possible.
- Private Sub Form_Resize()
- Dim wid As Single
- wid = ScaleWidth - picCanvas.Left
- If wid < 120 Then wid = 120
- picCanvas.Move picCanvas.Left, 0, wid, ScaleHeight
- End Sub
- ' Draw an ellipse bounded by a rectangle.
- Private Sub DrawEllipse(ByVal obj As Object, ByVal xmin As Single, ByVal ymin As Single, ByVal xmax As Single, ByVal ymax As Single)
- Dim cx As Single
- Dim cy As Single
- Dim wid As Single
- Dim hgt As Single
- Dim aspect As Single
- Dim radius As Single
- ' Find the center.
- cx = (xmin + xmax) / 2
- cy = (ymin + ymax) / 2
- ' Get the ellipse's size.
- wid = xmax - xmin
- hgt = ymax - ymin
- ' Do nothing if the width or height is zero.
- If (wid = 0) Or (hgt = 0) Then Exit Sub
- aspect = hgt / wid
- ' See which dimension is larger.
- If wid > hgt Then
- ' The major axis is horizontal.
- ' Get the radius in custom coordinates.
- radius = wid / 2
- Else
- ' The major axis is vertical.
- ' Get the radius in custom coordinates.
- radius = hgt / 2
- End If
- ' Draw the circle.
- obj.Circle (cx, cy), radius, , , , aspect
- End Sub
- ' Draw the appropriate object.
- Private Sub DrawObject(ByVal xmin As Single, ByVal ymin As Single, ByVal xmax As Single, ByVal ymax As Single)
- Select Case ObjectType
- Case objLine
- picCanvas.Line (xmin, ymin)-(xmax, ymax)
- Case objBox
- picCanvas.Line (xmin, ymin)-(xmax, ymax), , B
- Case objCircle
- DrawEllipse picCanvas, xmin, ymin, xmax, ymax
- Case objPoint
- picCanvas.PSet (xmax, ymax)
- End Select
- End Sub
- ' Set the DrawStyle.
- Private Sub optDrawStyle_Click(Index As Integer)
- picCanvas.DrawStyle = Index
- End Sub
- ' Set the FillColor.
- Private Sub optFillColor_Click(Index As Integer)
- picCanvas.FillColor = optFillColor(Index).ForeColor
- End Sub
- ' Set the FillStyle.
- Private Sub optFillStyle_Click(Index As Integer)
- picCanvas.FillStyle = Index
- End Sub
- ' Start a rubberbanding of some sort.
- Private Sub picCanvas_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
- ' Let MouseMove know we are rubberbanding.
- Rubberbanding = True
- ' Save values so we can restore them later.
- OldMode = picCanvas.DrawMode
- OldStyle = picCanvas.DrawStyle
- picCanvas.DrawMode = vbInvert
- If ObjectType = objLine Then
- picCanvas.DrawStyle = vbSolid
- Else
- picCanvas.DrawStyle = vbDot
- End If
- ' Save the starting coordinates.
- FirstX = X
- FirstY = Y
- ' Save the ending coordinates.
- LastX = X
- LastY = Y
- ' Draw the appropriate rubberband object.
- DrawObject FirstX, FirstY, LastX, LastY
- End Sub
- ' Continue rubberbanding.
- Private Sub picCanvas_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
- ' If we are not rubberbanding, do nothing.
- If Not Rubberbanding Then Exit Sub
- ' Erase the previous rubberband object.
- DrawObject FirstX, FirstY, LastX, LastY
- ' Save the new ending coordinates.
- LastX = X
- LastY = Y
- ' Draw the new rubberband object.
- DrawObject FirstX, FirstY, LastX, LastY
- End Sub
- ' Finish rubberbanding and draw the object.
- Private Sub picCanvas_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
- ' If we are not rubberbanding, do nothing.
- If Not Rubberbanding Then Exit Sub
- ' We are no longer rubberbanding.
- Rubberbanding = False
- ' Erase the previous rubberband object.
- DrawObject FirstX, FirstY, LastX, LastY
- ' Restore the original DrawMode and DrawStyle.
- picCanvas.DrawMode = OldMode
- picCanvas.DrawStyle = OldStyle
- ' Draw the final object.
- DrawObject FirstX, FirstY, LastX, LastY
- End Sub
- ' Select the default options.
- Private Sub Form_Load()
- optForeColor(0).Value = True
- optFillColor(0).Value = True
- optDrawStyle(picCanvas.DrawStyle).Value = True
- optFillStyle(picCanvas.FillStyle).Value = True
- ObjectChoice(ObjectType).Value = True
- txtDrawWidth.Text = Format$(picCanvas.DrawWidth)
- End Sub
- ' Record the kind of object to draw next.
- Private Sub ObjectChoice_Click(Index As Integer)
- ObjectType = Index
- End Sub
- ' Set the ForeColor.
- Private Sub optForeColor_Click(Index As Integer)
- picCanvas.ForeColor = optForeColor(Index).ForeColor
- End Sub
- ' Change set DrawWidth.
- Private Sub txtDrawWidth_Change()
- Dim wid As Integer
- If Not IsNumeric(txtDrawWidth.Text) Then Exit Sub
- wid = CInt(txtDrawWidth.Text)
- If wid < 1 Then Exit Sub
- picCanvas.DrawWidth = wid
- End Sub
- ' Only allow 1 through 9.
- Private Sub txtDrawWidth_KeyPress(KeyAscii As Integer)
- If KeyAscii < Asc(" ") Or _
- KeyAscii > Asc("~") Then Exit Sub
- If KeyAscii >= Asc("1") And _
- KeyAscii <= Asc("9") Then Exit Sub
- Beep
- KeyAscii = 0
- End Sub
-